/**
 * Created with IntelliJ IDEA.
 * Description:
 * User: 17655
 * Date: 2025-02-17
 * Time: 19:24
 */
public class test2 {
    /**
     * LeetCode 14 最长公共前缀
     */

    /**
     * 方法：两两比较
     * 时间复杂度：O（M*N），空间复杂度：O（1）
     * @param strs
     * @return
     */
    public String longestCommonPrefix(String[] strs) {
        String tmp = strs[0];
        for(int i=1;i<strs.length;i++){
            tmp = getCommon(tmp,strs[i]);
        }
        return tmp;
    }

    private String getCommon(String s1, String s2) {
        StringBuilder sb = new StringBuilder();
        int i=0;
        while(i<s1.length() && i<s2.length() && s1.charAt(i)==s2.charAt(i)){
            sb.append(s1.charAt(i));
            i++;
        }
        return sb.toString();
    }

    /**
     * 统一比较
     */
    public String longestCommonPrefix1(String[] strs) {
        for(int i=0;i<strs[0].length();i++){
            char tmp = strs[0].charAt(i);
            for(int j=1;j<strs.length;j++){
                if(i==strs[j].length() || strs[j].charAt(i)!=tmp){
                    return strs[0].substring(0,i);
                }
            }
        }
        return strs[0];
    }
}
